package com.xd.study.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.ViewFlipper;

import com.xd.study.R;

/**
 * Created by DGF on 2015/4/28.
 */
public class ViewFlipperActivity extends Activity {

    /**
     * 记录手指触摸屏幕的起始位置
     */
    private float fingerPosX = 0;
    private ViewFlipper viewFlipper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewflipper);

        viewFlipper = (ViewFlipper)this.findViewById(R.id.viewflipper);

        //图片资源
        int[] res = {R.drawable.viewflipper_pic_1, R.drawable.viewflipper_pic_2,
                     R.drawable.viewflipper_pic_3, R.drawable.viewflipper_pic_4};

        //为ViewFlipper动态添加图片资源
        for (int resId : res){
            ImageView imageView = new ImageView(this);
//            imageView.setImageResource(resId);//按图片大小显示
            imageView.setBackgroundResource(resId);//铺满父控件
            viewFlipper.addView(imageView);
        }

        //使用手势切换，则禁用自动播放
//        //为ViewFlipper添加动画效果
//        viewFlipper.setInAnimation(this, R.anim.left_in);
//        viewFlipper.setOutAnimation(this, R.anim.left_out);
//
//        //为ViewFlipper设置播放速度
//        viewFlipper.setFlipInterval(3000);
//
//        //开始播放
//        viewFlipper.startFlipping();
    }

    /**
     * 触摸屏幕时的事件，用于实现ViewFlipper的手势操作
     * 使用手势操作时，就屏蔽自动播放
     * @param event
     * @return
     */
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            //手指按下
            case MotionEvent.ACTION_DOWN:
                fingerPosX=event.getX();
                break;
            //手指移动
            case MotionEvent.ACTION_MOVE:
                //向右滑
                //滑动时会有图层叠加的现象，只要将动画中的透明度动画取消即可
                if (event.getX()-fingerPosX>100){
                    viewFlipper.setInAnimation(this, R.anim.left_in);
                    viewFlipper.setOutAnimation(this, R.anim.left_out);
                    viewFlipper.showPrevious();//看前一页
                }
                //向左滑
                if (event.getX()-fingerPosX<-100){
                    viewFlipper.setInAnimation(this, R.anim.right_in);
                    viewFlipper.setOutAnimation(this, R.anim.right_out);
                    viewFlipper.showNext();//看后一页
                }
                break;
            //手指松开
            case MotionEvent.ACTION_UP:
                break;
        }
        return super.onTouchEvent(event);
    }
}
